package com.scott.flyweight.lesson01;

/**
 * 需要共享的享元对象
 */
public class ConcreteFlyweight implements Flyweight {

	//内部状态
	private String innerState;
	
	//利用构造方法初始化内部状态
	public ConcreteFlyweight(String innerState){
		this.innerState = innerState;
	}
	
	@Override
	public void operate(String outerState) {
		
		//具体处理逻辑  可能会用到享元对象的内部状态  和 享元对象的外部状态
		System.out.println("内部状态=["+this.innerState+"]。外部状态=["+outerState);
	}

}

//在文本编辑器中。在不考虑中文和符号的情况 就是26个字母。这样在1个文件有就有大量的p  细粒度对象
class Character{
	@SuppressWarnings("unused")
	private String name="p";
	@SuppressWarnings("unused")
	private int x=0;
	@SuppressWarnings("unused")
	private int y=0;
	@SuppressWarnings("unused")
	private String fontSize="12";
	//.....
}
